The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
A typical network device, such as a router or a switch as used in packet-switched networks, provides a command line interface (CLI) that is accessible through Telnet, Secure Shell (SSH) and serial port interface for changing the device status or configuration. Each configuration command for the device has an associated syntax. A Network Management Station (NMS) can use the configuration commands to provide a higher level or enhanced management capability to the network operator. The NMS requires knowledge of the device configuration commands and the syntax of the commands to perform changing the configuration of a device.
One disadvantage with a CLI is that it is suitable for a human operator, but not for programs that can configure and control the device. A programmable API is required for such tasks. The devices can be built with programmable APIs, but providing a programmable interface on already existing systems and devices can be very expensive, if not impractical. It would be beneficial to have an automated approach for generating a programmable interface for an existing device or for devices that are already deployed at operating sites.
The NETCONF network device configuration protocol under development by the Internet Engineering Task Force (IETF) provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML) based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized on top of a Remote Procedure Call (RPC) layer. NETCONF is an emerging standard, and many network devices do not presently support it. Further, many network devices cannot directly execute commands that are delivered in XML, and many network management applications cannot interoperate with XML documents that conform to NETCONF.
Certain past approaches have attempted to implement a configuration interface layer on top of the CLI supported by Cisco IOS Software from Cisco Systems, Inc. These approaches have supported a narrow range of device types and configuration. These implementations also have required manual coding of the CLI rules, and since the data model is custom, have also required manual coding of processes for transformation of the model to the CLI and CLI to the model.